/**
 *  Author: Asteroth
 *  Date: 02/01/2011
 *  Copyright? Use as you want.
 */

#ifndef __ZEN__
#define __ZEN__
#pragma once

#include "defines.hpp"
#include "gl.hpp"
#include "debug.hpp"

#include "std/string_functions.hpp"
#include "std/mem_functions.hpp"
#include "std/JSL.hpp"

#include "math.hpp"

#include <btBulletDynamicsCommon.h>
#include <btBulletCollisionCommon.h>

#include "utils/JSLConvert.hpp"
#include "utils/BulletUtils.hpp"
#include "sys/Window.hpp"
#include "sys/Resources.hpp"
#include "sys/Settings.hpp"
#include "sys/Framer.hpp"
#include "sys/Scripting.hpp"

namespace zen {
	namespace math {
		class Math;
		template<class T> class Motionx;
	}
	namespace video {
		class Material;
		class Texture;
		class Pixmap;
		class Font;
		class Model;
		namespace model {
			class Animation;
			class Bone;
			class Mesh;
		}
	}
	namespace physics {

	}
}

#include "math/Math.hpp"
#include "math/Motion.hpp"
#include "video/Enabling.hpp"
#include "video/State.hpp"
#include "video/Material.hpp"
#include "video/Pixmap.hpp"
#include "video/ShaderManager.hpp"
#include "video/Graphics.hpp"
#include "video/ModelManager.hpp"
#include "video/TextureManager.hpp"
#include "video/CollisionShapeManager.hpp"
#include "video/FontManager.hpp"
#include "video/Drawing.hpp"
#include "video/Primitives.hpp"
#include "video/Lighting.hpp"
#include "video/Terrain.hpp"
#include "physics/Physics.hpp"

#endif
